#ifndef PUSHER_H
#define PUSHER_H

#include "GameObject.h"
#include "Direction.h"
#include "Activatable.h"
#include "PushBehavior.h"
#include "ActivateAbility.h"
#include "BlockMoveAbility.h"

class Pusher: public GameObject, public Activatable
{
public:
	Pusher(unsigned int initialCellX, unsigned int initialCellY);
	~Pusher();

	void SetDirection(const Direction& direction);
	
	virtual void Activate();
	virtual GameBehavior* GetBehavior();


protected:


private:
	Direction wallDirection;
	ActivateAbility* activateAbility;
	BlockMoveAbility* blockMoveAbility;
	PushBehavior pushBehavior;
};


#endif //PUSHER_H